package com.smart.community.commons.constant;

import com.smart.community.commons.enums.SystemStatusEnum;

/**
 * 状态常量类
 * 引用SystemStatusEnum，避免重复定义状态常量
 * 
 * @author Wu.Liang
 * @since 2025-07-06
 * @version 1.0.0
 */
public class StatusConstants {
    
    // ========================= 通用状态 =========================
    /**
     * 启用状态
     */
    public static final Integer ENABLED = SystemStatusEnum.ENABLED.getCode();
    
    /**
     * 禁用状态
     */
    public static final Integer DISABLED = SystemStatusEnum.DISABLED.getCode();
    
    /**
     * 删除状态
     */
    public static final Integer DELETED = SystemStatusEnum.DELETED.getCode();
    
    /**
     * 未删除状态
     */
    public static final Integer NOT_DELETED = SystemStatusEnum.NOT_DELETED.getCode();
    
    // ========================= 审核状态 =========================
    /**
     * 待审核
     */
    public static final Integer PENDING = SystemStatusEnum.AUDIT_PENDING.getCode();
    
    /**
     * 审核通过
     */
    public static final Integer APPROVED = SystemStatusEnum.AUDIT_APPROVED.getCode();
    
    /**
     * 审核拒绝
     */
    public static final Integer REJECTED = SystemStatusEnum.AUDIT_REJECTED.getCode();
    
    // ========================= 用户状态 =========================
    /**
     * 用户正常
     */
    public static final Integer USER_NORMAL = SystemStatusEnum.ENABLED.getCode();
    
    /**
     * 用户锁定
     */
    public static final Integer USER_LOCKED = SystemStatusEnum.LOCKED.getCode();
    
    /**
     * 用户待激活
     */
    public static final Integer USER_PENDING = SystemStatusEnum.USER_PENDING.getCode();
    
    // ========================= 业务状态 =========================
    /**
     * 业务正常
     */
    public static final Integer BUSINESS_NORMAL = SystemStatusEnum.ENABLED.getCode();
    
    /**
     * 业务暂停
     */
    public static final Integer BUSINESS_PAUSED = SystemStatusEnum.DISABLED.getCode();
    
    /**
     * 业务终止
     */
    public static final Integer BUSINESS_TERMINATED = SystemStatusEnum.BUSINESS_TERMINATED.getCode();
    
    /**
     * 工具类，防止实例化
     */
    private StatusConstants() {
        throw new UnsupportedOperationException("工具类不能实例化");
    }
}
